#include "libAcoustX/solver/SolverFactory.h"

ax::solve::Factory::Factory()
{
}

ax::solve::Factory::~Factory()
{
}

ax::bhp::Solver::sptr ax::solve::Factory::createBhpSolver() const
{
	return std::make_shared<ax::bhp::Solver>();
}

ax::usml::Solver::sptr ax::solve::Factory::createUSMLSolver() const
{
	return std::make_shared<ax::usml::Solver>();
}

ax::solve::Base::sptr ax::solve::Factory::createSolver(SolveType type) const
{
	switch (type)
	{
	case ax::solve::SolveType::ST_BHP:
	{
		return std::make_shared<ax::bhp::Solver>();
	}
	case ax::solve::SolveType::ST_USML:
	{
		return std::make_shared<ax::usml::Solver>();
	}
	default:
		break;
	}

	return solve::Base::sptr();
}
